The development of new computer programs or software has been greatly advanced both as to reliability and speed of development by the advent of object-oriented technology, i.e. object programming. In object programming, an object is a software package containing methods and data elements on which the methods operate. The methods in the object operate on the data elements to produce a desired result. A computer program may be organized into objects that together perform the desired operations of the program. To work together the objects send messages to each other. The messages specify a receiver object, a method to be performed by the receiver object and data to be used by the receiver object when performing the method. The receiver object may respond with a message to the sending object. Exemplary program languages for writing object-oriented programs include C++ and Smalltalk.
Another advance in the writing of computer programs has been the Component Object Module (COM) programming system developed by Microsoft Corporation. COM objects are designed to be standard building components useful for building many types of programs. Just as electrical circuit elements such as resistors, capacitors, inductors and active devices are components in circuit designs, so also COM objects are components in program designs.
A problem that remains in the development of programs is the review and testing of objects or COM objects. To test objects in the program, the developer will typically spend a great deal of time writing code to test each object with an assortment of messages containing methods and parameters to exercise the object. The testing and debugging of the objects in a new program may take a significant amount of time after the program is written.